import i18n from '../../i18n/langs/index.js'
//供应商采购商验证
let checkSupplier = (rule, value, callback) => {
    if (!value) {
        return callback(new Error(i18n.t('message.p-gyscgs')))
    }
    // else if (!/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(value)) {
    // 	callback(new Error("不能包含空格和特殊符号"))
    // } 
    else if (value.length > 128) {
        callback(new Error(i18n.t('message.m3')))
    } else {
        callback()
    }
}
// 验证中文名字
let checkTitle = (rule, value, callback) => {
    if (!value) {
        return callback(new Error(i18n.t('message.v-htxy')))
    }
    if (value.length > 128) {
        callback(new Error(i18n.t('message.m3')))
    } else {
        callback()
    }
}
// 英文名
let checkData = (rule, value, callback) => {
    // if (!/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(value)) {
    //     callback(new Error("不能包含空格和特殊符号"))
    // }
    if (value.length > 128) {
        callback(new Error(i18n.t('message.m3')))
    }
    if (!/^[ A-Za-z]*$/.test(value) && value.length > 0) {
        callback(new Error(i18n.t('message.znsuyw')))
    } else {
        callback()
    }
}
// 验证金额
let validNumber = (rule, value, callback) => {
    const toNumberVal = Number(value);


    if (value.length > 32) {
        callback(new Error(i18n.t('message.m3')))
    }
    if ((typeof value === 'string' && value === '') || (value === null)) {
        callback(new Error(i18n.t('message.m7')));
    } else if (isNaN(toNumberVal)) {
        callback(new Error(i18n.t('message.m8')));
    } if (value) {
        if (value.toString().split('.')[1]) {
            var len = value.toString().split('.')[1].length;
            if (len > 2) {
                callback(new Error(i18n.t('message.p-je1')));
            } else {
                callback();
            }
        } else {
            callback();
        }
    } else {
        callback();
    }
}
// 手机号
let checkPhone = (rule, value, callback) => {
    if (!value) {
        return callback(new Error(i18n.t('message.m9')));
    }else if(!/^[+]{0,1}\d+$/.test(value)){
		return callback(new Error(i18n.t('message.m10')));
	}else {
        callback();
    }
}
// 协议号
let checkContractId = (rule, value, callback) => {
    if (!value) {
        return callback(new Error(i18n.t('message.m1')));
    } else if (value.length > 128) {
        callback(new Error(i18n.t('message.m3')))
    } else {
        callback()
    }
}
// 协议内容
let checkContract = (rule, value, callback) => {
    if (!value) {
        return callback(new Error(i18n.t('message.m1')));
    } else if (value.length > 514) {
        callback(new Error(i18n.t('message.m3')))
    } else {
        callback()
    }
}
// 座机号
const checkLandlinee = (rule, value, callback) => {
    const isMob = /^(\d{3,4}-)?\d{7,8}$/i
    // console.log(reg.test(value));
    if (isMob.test(value)) {
        callback();
    } else if (!value) {
        callback();
    } else {
        callback(new Error(i18n.t('message.m11')));
    }
}
let filledName = (rule, value, callback) => {
    if (!value) {
        return callback(new Error(i18n.t('message.m12')))
    } else if (!/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(value)) {
        callback(new Error(i18n.t('message.m2')))
    } else if (/^[0-9]*$/g.test(value)) {
        callback(new Error(i18n.t('message.m6')))
    } else if (value.length > 64) {
        callback(new Error(i18n.t('message.m3')))
    } else {
        callback()
    }
}
let otherService = (rule, value, callback) => {
    if (!value) {
        return callback(new Error(i18n.t('message.m13')))
    } else if (!/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/.test(value)) {
        callback(new Error(i18n.t('message.m2')))
    } else if (value.length > 128) {
        callback(new Error(i18n.t('message.m3')))
    } else {
        callback()
    }
}

const checkFilledBy = (rule, value, callback) => {
    if (!value) {
        return callback(new Error(i18n.t('message.m12')))
    } else if (!/^[\u4e00-\u9fa5a-zA-Z0-9]+$/.test(value)) {
        callback(new Error(i18n.t('message.m2')))
    } else if (value.length > 128) {
        callback(new Error(i18n.t('message.m3')))
    } else {
        callback()
    }
}

export {
    validNumber,
    checkPhone,
    checkData,
    checkSupplier,
    checkTitle,
    checkLandlinee,
    checkContractId,
    checkContract,
    filledName,
    checkFilledBy,
    otherService
}
